// 定义 store
import { defineStore } from "pinia"
import {reactive, ref} from 'vue'
/*
    第一个参数:名字,唯一性
    第二个参数:函数,函数的内部可以定义状态的所有内容

    返回值: 函数
 */
export const useTokenStore = defineStore('token', () => {
    // 响应式变量
    const tokenInfo = reactive({
        tokenName: '',
        tokenValue: ''
    })

    // 修改token值函数
    const setToken = (newTokenName: string, newTokenValue: string) => {
       tokenInfo.tokenName = newTokenName
       tokenInfo.tokenValue = newTokenValue
    }

    // 移除token值函数
    const removeToke = () => {
        tokenInfo.tokenName = ''
        tokenInfo.tokenValue = ''
    }

    // 判断是否登录
    const isLogin = (): boolean => {
        if (tokenInfo.tokenName && tokenInfo.tokenValue) {
            return true
        } else {
            return false
        }
    }

    return {
        tokenInfo, setToken, removeToke, isLogin
    }
}, 
{
    persist: true   // 持久化存储
}
)
